/**
 * <code>ISmsService.java</code>	创建时间：2017-04-27
 * 
 * Copyright (c) 2008-2018  自动生成的  all rights reserved.
 */
package com.jf.cloud.service.sysmanager.dao;

import org.hibernate.service.spi.ServiceException;

import com.jf.cloud.service.sysmanager.common.base.IBaseService;
import com.jf.cloud.service.sysmanager.constant.sms.SmsResult;
import com.jf.cloud.service.sysmanager.entity.PubgPhoneMsg;
import com.jf.cloud.service.sysmanager.support.entity.Result;


/**
 * 
 * 短信相关服务
 * 
 * @author 姚龙 创建时间：2017-04-27 17:08:37
 */
public interface ISmsService extends IBaseService<PubgPhoneMsg, Long> {
	
	/**
	 * 
	 * 发送短信
	 * 
	 * @author 姚龙   创建时间：2017-05-02 17:06:54
	 */
	public SmsResult sendSMS(String userPhone, String smsContent);
	
	/**
	 * 
	 * 发送验证码短信
	 * 
	 * @author 姚龙   创建时间：2017-05-02 16:44:02
	 */
	public String sendCaptchaSms(String userPhone, String modelType) throws ServiceException;

	/**
	 * 
	 * 检查是否可以发送短信
	 * 
	 * @author 姚龙   创建时间：2017-05-02 14:26:50
	 */
	public Result<String> check(String ip, String phoneNo, String modelType);
	
	/**
	 * 
	 * 根据用户ID、用户手机、模块类型查询手机验证码
	 * 
	 * @author 姚龙   创建时间：2017-05-05 15:20:19
	 */
	public PubgPhoneMsg findUserPhoneYzm(Long userId, String userPhone, String modelType);
	
	/**
	 * 
	 * 验证 手机验证码 0:成功 其他为错误代码+原因描述
	 * 
	 * @author 姚龙   创建时间：2017-05-06 14:38:51
	 */
	public String checkSMS(Long userId, String userPhone, String modelType, String phoneCode) throws Exception;
	
	/**
	 * 更新手机验证码状态为0不可用
	 * 
	 * @author 程伟平 创建时间：2013-09-10 15:30:20
	 */
	public void updateUserPhoneYzmState(Long userId, String userPhone, String modelType) throws ServiceException;
	
}
